↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
PLUS_IN_GAA(s(X), Y, s(Z)) → P_IN_GA(s(X), U)
P_IN_GA(s(s(X)), s(s(Y))) → U1_GA(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GA(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
P_IN_GG(s(s(X)), s(s(Y))) → U1_GG(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → U3_GAA(X, Y, Z, plus_in_gaa(U, Y, Z))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
PLUS_IN_GAA(s(X), Y, s(Z)) → P_IN_GA(s(X), U)
P_IN_GA(s(s(X)), s(s(Y))) → U1_GA(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GA(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
P_IN_GG(s(s(X)), s(s(Y))) → U1_GG(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → U3_GAA(X, Y, Z, plus_in_gaa(U, Y, Z))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
P_IN_GG(s, s) → P_IN_GG(s, s)
P_IN_GG(s, s) → P_IN_GG(s, s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ PrologToPiTRSProof
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
U2_GAA(p_out_ga(U)) → PLUS_IN_GAA(U)
p_in_ga(s) → p_out_ga(0)
p_in_ga(s) → U1_ga(p_in_gg(s, s))
U1_ga(p_out_gg) → p_out_ga(s)
p_in_gg(s, s) → U1_gg(p_in_gg(s, s))
U1_gg(p_out_gg) → p_out_gg
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
U1_ga(p_out_gg) → p_out_ga(s)
POL(0) = 0
POL(PLUS_IN_GAA(x1)) = 2·x1
POL(U1_ga(x1)) = x1
POL(U1_gg(x1)) = x1
POL(U2_GAA(x1)) = x1
POL(p_in_ga(x1)) = x1
POL(p_in_gg(x1, x2)) = x1 + x2
POL(p_out_ga(x1)) = 2·x1
POL(p_out_gg) = 1
POL(s) = 0
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ PrologToPiTRSProof
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
U2_GAA(p_out_ga(U)) → PLUS_IN_GAA(U)
p_in_ga(s) → p_out_ga(0)
p_in_ga(s) → U1_ga(p_in_gg(s, s))
p_in_gg(s, s) → U1_gg(p_in_gg(s, s))
U1_gg(p_out_gg) → p_out_gg
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
U1_gg(p_out_gg) → p_out_gg
POL(0) = 0
POL(PLUS_IN_GAA(x1)) = 2·x1
POL(U1_ga(x1)) = x1
POL(U1_gg(x1)) = 2·x1
POL(U2_GAA(x1)) = x1
POL(p_in_ga(x1)) = x1
POL(p_in_gg(x1, x2)) = x1 + x2
POL(p_out_ga(x1)) = 2·x1
POL(p_out_gg) = 2
POL(s) = 0
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ PrologToPiTRSProof
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
U2_GAA(p_out_ga(U)) → PLUS_IN_GAA(U)
p_in_ga(s) → p_out_ga(0)
p_in_ga(s) → U1_ga(p_in_gg(s, s))
p_in_gg(s, s) → U1_gg(p_in_gg(s, s))
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
p_in_ga(s) → U1_ga(p_in_gg(s, s))
POL(0) = 0
POL(PLUS_IN_GAA(x1)) = 1 + 2·x1
POL(U1_ga(x1)) = 2·x1
POL(U1_gg(x1)) = x1
POL(U2_GAA(x1)) = x1
POL(p_in_ga(x1)) = 1 + x1
POL(p_in_gg(x1, x2)) = 2·x1 + x2
POL(p_out_ga(x1)) = 1 + 2·x1
POL(s) = 0
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
U2_GAA(p_out_ga(U)) → PLUS_IN_GAA(U)
p_in_ga(s) → p_out_ga(0)
p_in_gg(s, s) → U1_gg(p_in_gg(s, s))
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ PrologToPiTRSProof
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
U2_GAA(p_out_ga(U)) → PLUS_IN_GAA(U)
p_in_ga(s) → p_out_ga(0)
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ PrologToPiTRSProof
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
U2_GAA(p_out_ga(U)) → PLUS_IN_GAA(U)
p_in_ga(s) → p_out_ga(0)
p_in_ga(x0)
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
POL(0) = 1
POL(PLUS_IN_GAA(x1)) = 2·x1
POL(U2_GAA(x1)) = x1
POL(p_in_ga(x1)) = x1
POL(p_out_ga(x1)) = 2·x1
POL(s) = 2
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
U2_GAA(p_out_ga(U)) → PLUS_IN_GAA(U)
p_in_ga(s) → p_out_ga(0)
p_in_ga(x0)
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
PLUS_IN_GAA(s(X), Y, s(Z)) → P_IN_GA(s(X), U)
P_IN_GA(s(s(X)), s(s(Y))) → U1_GA(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GA(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
P_IN_GG(s(s(X)), s(s(Y))) → U1_GG(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → U3_GAA(X, Y, Z, plus_in_gaa(U, Y, Z))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
PLUS_IN_GAA(s(X), Y, s(Z)) → P_IN_GA(s(X), U)
P_IN_GA(s(s(X)), s(s(Y))) → U1_GA(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GA(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
P_IN_GG(s(s(X)), s(s(Y))) → U1_GG(X, Y, p_in_gg(s(X), s(Y)))
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → U3_GAA(X, Y, Z, plus_in_gaa(U, Y, Z))
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
P_IN_GG(s(s(X)), s(s(Y))) → P_IN_GG(s(X), s(Y))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
P_IN_GG(s, s) → P_IN_GG(s, s)
P_IN_GG(s, s) → P_IN_GG(s, s)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
plus_in_gaa(0, Y, Y) → plus_out_gaa(0, Y, Y)
plus_in_gaa(s(X), Y, s(Z)) → U2_gaa(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
p_in_gg(s(0), 0) → p_out_gg(s(0), 0)
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
U2_gaa(X, Y, Z, p_out_ga(s(X), U)) → U3_gaa(X, Y, Z, plus_in_gaa(U, Y, Z))
U3_gaa(X, Y, Z, plus_out_gaa(U, Y, Z)) → plus_out_gaa(s(X), Y, s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U2_GAA(X, Y, Z, p_out_ga(s(X), U)) → PLUS_IN_GAA(U, Y, Z)
PLUS_IN_GAA(s(X), Y, s(Z)) → U2_GAA(X, Y, Z, p_in_ga(s(X), U))
p_in_ga(s(0), 0) → p_out_ga(s(0), 0)
p_in_ga(s(s(X)), s(s(Y))) → U1_ga(X, Y, p_in_gg(s(X), s(Y)))
U1_ga(X, Y, p_out_gg(s(X), s(Y))) → p_out_ga(s(s(X)), s(s(Y)))
p_in_gg(s(s(X)), s(s(Y))) → U1_gg(X, Y, p_in_gg(s(X), s(Y)))
U1_gg(X, Y, p_out_gg(s(X), s(Y))) → p_out_gg(s(s(X)), s(s(Y)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
U2_GAA(p_out_ga(s, U)) → PLUS_IN_GAA(U)
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
p_in_ga(s) → p_out_ga(s, 0)
p_in_ga(s) → U1_ga(p_in_gg(s, s))
U1_ga(p_out_gg(s, s)) → p_out_ga(s, s)
p_in_gg(s, s) → U1_gg(p_in_gg(s, s))
U1_gg(p_out_gg(s, s)) → p_out_gg(s, s)
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
p_in_ga(s) → U1_ga(p_in_gg(s, s))
U1_gg(p_out_gg(s, s)) → p_out_gg(s, s)
POL(0) = 0
POL(PLUS_IN_GAA(x1)) = 2 + 2·x1
POL(U1_ga(x1)) = 2·x1
POL(U1_gg(x1)) = 2·x1
POL(U2_GAA(x1)) = x1
POL(p_in_ga(x1)) = 2 + x1
POL(p_in_gg(x1, x2)) = 2·x1 + 2·x2
POL(p_out_ga(x1, x2)) = 2 + 2·x1 + 2·x2
POL(p_out_gg(x1, x2)) = 1 + 2·x1 + 2·x2
POL(s) = 0
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
U2_GAA(p_out_ga(s, U)) → PLUS_IN_GAA(U)
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
p_in_ga(s) → p_out_ga(s, 0)
U1_ga(p_out_gg(s, s)) → p_out_ga(s, s)
p_in_gg(s, s) → U1_gg(p_in_gg(s, s))
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
U2_GAA(p_out_ga(s, U)) → PLUS_IN_GAA(U)
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
p_in_ga(s) → p_out_ga(s, 0)
p_in_ga(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
U1_ga(x0)
p_in_gg(x0, x1)
U1_gg(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
U2_GAA(p_out_ga(s, U)) → PLUS_IN_GAA(U)
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
p_in_ga(s) → p_out_ga(s, 0)
p_in_ga(x0)
U2_GAA(p_out_ga(s, U)) → PLUS_IN_GAA(U)
PLUS_IN_GAA(s) → U2_GAA(p_in_ga(s))
POL(0) = 0
POL(PLUS_IN_GAA(x1)) = 2 + 2·x1
POL(U2_GAA(x1)) = x1
POL(p_in_ga(x1)) = 1 + 2·x1
POL(p_out_ga(x1, x2)) = 1 + 2·x1 + 2·x2
POL(s) = 1
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ PisEmptyProof
p_in_ga(s) → p_out_ga(s, 0)
p_in_ga(x0)